﻿using System;

namespace Playbook.Core
{
    /// <summary>
    /// Represents a bindable command.
    /// </summary>
    public interface ICommand
    {
        event EventHandler CanExecuteChanged;
        bool CanExecute(object parameter);
        void Execute(object parameter);
    }

    /// <summary>
    /// Represents a bindable command.
    /// </summary>
    /// <typeparam name="T"></typeparam>
    public interface ICommand<T>
    {
        event EventHandler CanExecuteChanged;
        bool CanExecute(T parameter);
        void Execute(T parameter);
    }
   
}
